This document analyses the self-developed sheduler componnet in Android-based mobile devices as part of the SyMptOMS project.
To create the PDF of the computational notebook you can run the following commands in a new R session. If you have problems rendering the PDF you can execute each chunk independently in RStudio.
This document does not install the required R packages by default. You can run the script install.R to install all required dependencies on a new R installation, or use install.packages(..) to install missing R packages.
The plots and tables use the packages ggplot2, knitr::kable() and kableExtra.
Required libraries and runtime environment description are as follows.
library(tidyverse)
library(kableExtra)
library(here)
library(googledrive)
library(lubridate)
library(stringr)
library(scales)
library(plotly)
## Using an auto-discovered, cached token.
## To suppress this message, modify your code or options to clearly consent to the use of a cached token.
## See gargle's "Non-interactive auth" vignette for more details:
## https://gargle.r-lib.org/articles/non-interactive-auth.html
## The googledrive package is using a cached token for canut@uji.es.
Key Variables:
quantitative (interval)
plan_date (datetime): task planning time.exec_date (datetime): task execution time.quantitative (ratio)
delay (numeric): execution delay in seconds ((exec_date - plan_date) - 60).categorital (ordinal)
battery(numeric): battery levelcategorical (nominal)
device_id/device_name: device identifier/nameexp_id: experiment identifier.scheduler: scheduler type.129.922 observations registered in both experiments. Table below summarises ranges and total numbers per device.
| exp_id | device_desc | # observations | start datetime | end_datetime | mean delay | sd | mean - 2sd | mean + 2sd |
|---|---|---|---|---|---|---|---|---|
| #1 | Advanced - BQ Aquaris V | 21391 | 2020-03-30 12:15:03 | 2020-04-14 13:07:57 | 0.703 | 2.431 | -4.159 | 5.565 |
| #1 | Advanced - Nvidia Shield Tablet | 21453 | 2020-03-30 12:15:03 | 2020-04-14 13:08:14 | 0.638 | 2.169 | -3.700 | 4.976 |
| #1 | Advanced - Xiaomi Mi A1 | 21465 | 2020-03-30 12:23:27 | 2020-04-14 13:07:50 | 0.476 | 3.513 | -6.550 | 7.502 |
| #1 | Basic - Honor 9 | 21574 | 2020-03-30 12:00:03 | 2020-04-14 13:01:35 | 0.351 | 2.456 | -4.561 | 5.263 |
| #1 | Basic - Motorola Moto G | 21619 | 2020-03-30 12:00:07 | 2020-04-14 13:01:16 | 1.014 | 2.755 | -4.496 | 6.524 |
| #2 | Advanced - Honor 9 | 5783 | 2020-04-15 11:00:02 | 2020-04-19 11:59:14 | 0.351 | 2.456 | -4.561 | 5.263 |
| #2 | Advanced - Motorola Moto G | 4249 | 2020-04-16 12:09:53 | 2020-04-19 12:00:11 | 1.014 | 2.755 | -4.496 | 6.524 |
| #2 | Basic - BQ Aquaris V | 4429 | 2020-04-15 11:16:26 | 2020-04-18 13:30:10 | 0.703 | 2.431 | -4.159 | 5.565 |
| #2 | Basic - Nvidia Shield Tablet | 3528 | 2020-04-15 11:16:18 | 2020-04-17 22:27:06 | 0.638 | 2.169 | -3.700 | 4.976 |
| #2 | Basic - Xiaomi Mi A1 | 4431 | 2020-04-15 11:16:23 | 2020-04-18 13:32:22 | 0.476 | 3.513 | -6.550 | 7.502 |
1.6% (2.108/129.922) of outliers. Outlier breakdown below.
| scheduler | device_name | # outliers |
|---|---|---|
| Advanced | BQ Aquaris V | 65 |
| Advanced | Honor 9 | 54 |
| Advanced | Motorola Moto G | 461 |
| Advanced | Nvidia Shield Tablet | 231 |
| Advanced | Xiaomi Mi A1 | 210 |
| Basic | Honor 9 | 6 |
| Basic | Motorola Moto G | 1079 |
| Basic | Xiaomi Mi A1 | 2 |
delay over plan_dateSee the shiny app!
delay over battery (without outliers)## Warning in bind_rows_(x, .id): Unequal factor levels: coercing to character
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): Unequal factor levels: coercing to character
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
## Warning in bind_rows_(x, .id): binding character and factor vector,
## coercing into character vector
Basic statistics applied to delay and device_name. Given a device, how do the box plots change on each scheduler?
## This version of Shiny is designed to work with 'htmlwidgets' >= 1.5.
## Please upgrade via install.packages('htmlwidgets').
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels